#ifndef SYNTHOBJECT_H
#define SYNTHOBJECT_H

#include "vector"
#include "string"
#include "cinder/gl/Texture.h"
#include "cinder/gl/TextureFont.h"

using namespace std;

class SynthObject
{
public:
    explicit SynthObject(string synthName, float x,float y, float param1, float param2, int section,cinder::gl::TextureFontRef textureFont);
    void setSynthName(string synthName);
    void setX(float x);
    void setY(float y);
    void setParam1(float param1);
    void setParam2(float param2);
    void setSynthSelection(string synthSelection);
    void draw();
    void drawMetaSynth();
    void setSection(int section);
    void setAudioBuffer(vector<float> buffer);
    float getX();
    float getY();

private:
    string synthName;
    float x;
    float y;
    float param1;
    float param2;
    string synthSelection;
    float count;
    float redDelta;
    float greenDelta;
    float blueDelta;
    float rotateAmt;
    int section;
    vector<float> reds;
    vector<float> greens;
    vector<float> blues;
    void glCircle3i(int x, int y, int radius);
    int flicker;
    int flickerCount;
    int bufferSize;
    vector<float> buffer;
    cinder::gl::TextureFontRef mTextureFont;
    int textCounter;
};

#endif // SYNTHOBJECT_H
